Skip to content

gong-web/PTGen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PTGen

PTGen hero banner

Python Git LFS Windows Linux Status

PTGen 是一个面向安全研究、漏洞情报采集与知识库构建的多源爬虫平台。当前仓库围绕四个核心模块组织:网页爬取、RSS 增量采集、微信公众号爬取、外部仓库同步。所有结果统一落到 raw_data/,便于后续做清洗、去重、关联分析和知识图谱构建。

Note

当前版本已经把个人敏感配置统一收敛到仓库根目录 .env。开源仓库中只保留 .env.example 模板,实际凭据、Cookie、Token、代理地址和本地环境参数不应再写入 Python 源码。

Warning

项目包含大体量数据文件,仓库已启用 Git LFS。若只想浏览代码,可跳过 LFS 拉取;若要完整复现实验数据,请先执行 git lfs installgit lfs pull

模块总览

网页爬取

CSDN、GitHub、奇安信攻防社区、先知社区统一由爬虫管理器调度。

python crawlers/main_crawler.py --all -q CVE-2024-23897 --yes

RSS 模块

支持一次性同步和定时调度两种模式,适合做低成本增量采集。

python crawlers/main_crawler.py --rss-sync -q 内网渗透
python crawlers/rss_scheduler.py --interval 2

微信公众号爬取

支持搜狗直采、mitmproxy + UI 自动化,以及候选账号发现回流。

python crawlers/wechat_crawler/sogou_crawler.py --seed
python crawlers/wechat_crawler/run_discovery.py

外部仓库同步

同步 ATT&CK、CVE、CWE、CAPEC、CISA KEV、Exploit-DB 等外部库。

python crawlers/sync_data_light.py --repos attack,cisa-kev,cwe

目录结构

PTGen/
├── crawlers/
│   ├── main_crawler.py
│   ├── crawler_manager.py
│   ├── sync_data_light.py
│   ├── rss_crawler.py
│   ├── rss_scheduler.py
│   ├── config.py
│   ├── project_settings.py
│   ├── attack_core/
│   └── wechat_crawler/
├── docs/assets/images/
├── raw_data/
├── .env.example
├── requirements.txt
├── .gitattributes
└── README.md

快速开始

1. 创建虚拟环境

python -m venv .venv

Windows:

.venv\Scripts\activate

Linux / macOS:

source .venv/bin/activate

2. 安装依赖

pip install -U pip
pip install -r requirements.txt

3. 初始化统一配置文件

Windows:

copy .env.example .env

Linux / macOS:

cp .env.example .env

4. 填写 .env

至少按需填写以下条目:

  • PTGEN_CSDN_COOKIE / PTGEN_CSDN_USERNAME / PTGEN_CSDN_PASSWORD
  • PTGEN_GITHUB_TOKEN
  • PTGEN_DEEPSEEK_API_KEY
  • PTGEN_WECHAT_COOKIEPTGEN_WECHAT_X_WECHAT_KEY 等微信抓包参数
  • PTGEN_HTTP_PROXY / PTGEN_HTTPS_PROXY

5. 运行对应模块

根据你的目标,在下方四个模块入口中选择一个或多个执行。

统一配置体系

项目中的个人关键信息现在统一由根目录 .env 管理,代码通过 crawlers/project_settings.py 读取。

PTGEN_CSDN_COOKIE=
PTGEN_GITHUB_TOKEN=
PTGEN_DEEPSEEK_API_KEY=
PTGEN_WECHAT_COOKIE=
PTGEN_WECHAT_X_WECHAT_KEY=
PTGEN_HTTP_PROXY=http://127.0.0.1:7890
PTGEN_HTTPS_PROXY=http://127.0.0.1:7890

这一设计的原则是:

  • 源码仓库不存放个人 Cookie、Token、API Key。
  • .env.example 作为公开模板,.env 作为本地私有配置。
  • 模块级运行参数保留在各自配置文件中,个人敏感参数只放在 .env

四个模块的运行脚本

1. 网页爬取模块

适用数据源:CSDN、GitHub、奇安信攻防社区、先知社区。

常用命令:

python crawlers/main_crawler.py
python crawlers/main_crawler.py --all -q CVE-2024-23897 --yes
python crawlers/main_crawler.py --sources csdn,github,qianxin,xianzhi -q "Java 反序列化" --max-pages 10 --yes

核心入口:

  • crawlers/main_crawler.py
  • crawlers/crawler_manager.py

2. RSS 模块

适用场景:低成本增量采集,支持一次性同步和调度器周期运行。

常用命令:

python crawlers/main_crawler.py --rss-sync -q 内网渗透
python crawlers/rss_scheduler.py --interval 2
python crawlers/rss_scheduler.py --once

核心入口:

  • crawlers/rss_crawler.py
  • crawlers/rss_scheduler.py

3. 微信公众号爬取模块

适用场景:公众号文章直采、PC 微信真实流量采集、公众号候选发现与回流。

3.1 搜狗直采模式

python crawlers/wechat_crawler/sogou_crawler.py --seed
python crawlers/wechat_crawler/sogou_crawler.py --accounts FreeBuf 安全客 --count 10

3.2 原生微信 + mitmproxy 模式

mitmdump -s crawlers/wechat_crawler/interceptor.py
python crawlers/wechat_crawler/ui_bot.py
python crawlers/wechat_crawler/scheduler.py

3.3 账号发现与扩种

python crawlers/wechat_crawler/run_discovery.py
python crawlers/wechat_crawler/run_discovery.py --channel b
python crawlers/wechat_crawler/run_discovery.py --channel c --auto-add --crawl --count 10

核心入口:

  • crawlers/wechat_crawler/sogou_crawler.py
  • crawlers/wechat_crawler/interceptor.py
  • crawlers/wechat_crawler/ui_bot.py
  • crawlers/wechat_crawler/scheduler.py
  • crawlers/wechat_crawler/run_discovery.py

4. 外部仓库同步模块

适用场景:同步外部安全知识库或漏洞数据库镜像。

常用命令:

python crawlers/sync_data_light.py
python crawlers/sync_data_light.py --repos attack
python crawlers/sync_data_light.py --repos cisa-kev,cwe,capec
python crawlers/sync_data_light.py --repos exploit-db,cve,nvd

支持的仓库 ID:

  • attack
  • cisa-kev
  • cwe
  • capec
  • d3fend
  • github-advisory
  • zdi
  • cve
  • nvd
  • exploit-db
  • linux-vulns

核心入口:

  • crawlers/sync_data_light.py

微信公众号子系统流程图

下图概括了微信子系统的双轨采集、统一沉淀和发现回流闭环:

微信公众号爬虫子系统流程图

数据输出约定

默认输出目录如下:

  • raw_data/csdn:CSDN 抓取结果
  • raw_data/github:GitHub Issues、仓库与 POC 数据
  • raw_data/qianxin:奇安信结果
  • raw_data/XIANZHI:先知社区结果
  • raw_data/wechat:微信公众号文章与发现结果
  • raw_data/attack-database:ATT&CK 原始资料与派生内容
  • raw_data/cve-database:CVE 列表镜像
  • raw_data/cwe-database:CWE 数据库
  • raw_data/capec-database:CAPEC 数据库
  • raw_data/cisa-kev-database:CISA KEV 数据
  • raw_data/exploit-db-database:Exploit-DB 镜像

设计说明

爬虫管理层

BaseCrawler 定义统一接口,不同站点通过继承实现 crawl()get_source_name()CrawlerManager 负责注册、执行、汇总和落盘。

ATT&CK 子系统

crawlers/attack_core/stix 负责下载并解析 MITRE ATT&CK STIX Bundle,输出战术、技术、组织、软件、缓解措施等结构化 JSON。

微信子系统

微信链路由直采、抓包、UI 自动化和发现回流组成,是仓库中复杂度最高、平台依赖最强的部分。

Git LFS 说明

仓库当前已纳入大量原始数据,且存在超大单文件,因此 raw_data/** 通过 Git LFS 管理。

git lfs install
git lfs pull

如果只想查看代码,可以克隆后不执行 git lfs pull

安全与合规

Important

CSDN 会员内容、微信公众号数据、社区资源与外部镜像的采集都可能受到目标站点服务条款、版权条款或网络合规要求约束。请仅在授权和合规前提下使用本项目。

  • 不要把真实 .env 上传到公开仓库。
  • 若仓库曾经提交过敏感凭据,建议立即轮换并考虑后续做历史清理。
  • 大规模抓取请控制频率,避免触发站点风控或造成异常负载。

已知限制

  • 微信 UI 自动化链路依赖 Windows 图形环境。
  • 部分模块受代理、Cookie、Token 和第三方站点可用性影响较大。
  • 目前仍以研究型平台为主,测试覆盖和部署自动化尚未完全工程化。

许可证

当前仓库尚未提供正式 LICENSE 文件。在补充许可证前,请不要默认将本仓库视为已开放商业或再分发授权。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors